package com.tjec.project.projectWorkbench.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tjec.project.system.domain.BmsAttachment;
import com.tjec.project.system.domain.vo.BmsAttachmentVo;

import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.tjec.framework.aspectj.lang.annotation.Excel;
import com.tjec.framework.web.domain.BaseEntity;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 项目对象 bms_project
 * 
 * @author cjj
 * @date 2020-04-09
 */
public class BmsProject extends BmsProjectSimple
{
    private static final long serialVersionUID = 1L;

    //是否是项目成员或项目负责人（0:否，1:是）
    private String isMember;
    
    /** id 主键 */
    @JsonIgnore
    private Long id;

    /** 所在地区-省 项目所在地区-省 */
    @JsonIgnore
    private String province;

    /** 所在地区-市 项目所在地区-市 */
    @JsonIgnore
    private String city;
    
    /*用户guid*/
    private String userGuid;

    /**
     * 冻结状态(1=正常，0=冻结)
     */
    private String freezeStatus;

    /** 所在地区-区 项目所在地区-区 */
    @ApiModelProperty(value = "项目所在地区-省市区，用英文分号隔开")
    private String area;

    /** 所在地区-区 项目所在地区-区 */
    @ApiModelProperty(value = "项目所在地区数组，包含省市区")
    private String[] areas;

    /** 所在地区-省 项目所在地区-省 */
    @JsonIgnore
    private String provinceName;

   /** 所在地区-市 项目所在地区-市 */
   @JsonIgnore
    private String cityName;

    /** 所在地区-区 项目所在地区-区 */
    @ApiModelProperty(value = "项目所在地区-区名称")
    private String areaName;

    /** 地址 项目地址 */
    @ApiModelProperty(value = "地址")
    private String address;

    /** 业务组成 业务组成 */
//    @ApiModelProperty(value = "业务组成")
    private String composition;

    /** 服务期 服务期 */
//    @ApiModelProperty(value = "服务期")
    private Long servicePeriod;

    /** 建设内容及规模 建设内容及规模 */
    @ApiModelProperty(value = "建设内容及规模")
    private String content;

    /** 扩展字段1 扩展字段1 */
//    @ApiModelProperty(value = "扩展字段1")
    private String extend1;

    /** 扩展字段2 扩展字段2 */
//    @ApiModelProperty(value = "扩展字段2")
    private String extend2;

    /** 扩展字段3 扩展字段3 */
//    @ApiModelProperty(value = "扩展字段3")
    private String extend3;

    /** 扩展字段4 扩展字段4 */
//    @ApiModelProperty(value = "扩展字段4")
    private String extend4;

    /** 扩展字段5 扩展字段5 */
//    @ApiModelProperty(value = "扩展字段5")
    private String extend5;

    /** 所属公司 */
    @ApiModelProperty(value = "所属公司")
    private String projectCompany;

    /** 项目负责人代码 */
    @ApiModelProperty(value = "项目负责人代码")
    private String projectLeaderNo;

    /** 完成服务日期 */
    @ApiModelProperty(value = "完成服务日期(yyyy-MM-dd)")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /** 项目总投资（万元） */
    @ApiModelProperty(value = "项目总投资(万元)")
    private Double investment;

    /** 建安造价（万元） */
    @ApiModelProperty(value = "建安造价(万元)")
    private Long constructionCost;

    /** 项目所获荣誉 */
    @ApiModelProperty(value = "项目所获荣誉")
    private String honors;

    /** 项目包含业务类别  */
    @ApiModelProperty(value = "项目包含业务类别")
    private String businessCategory;
    
    @ApiModelProperty(value = "可从事的业务类别")
    private String useBusinessCategory;

    public String getUseBusinessCategory() {
		return useBusinessCategory;
	}

	public void setUseBusinessCategory(String useBusinessCategory) {
		this.useBusinessCategory = useBusinessCategory;
	}

	/** 链接（链接名称和链接地址之间用逗号隔开，多条链接用分号隔开） eg:项目管理,www.xxxx.com;项目监理,www.yyy.com; */
    @ApiModelProperty(value = "链接（链接名称和链接地址之间用逗号隔开，多条链接用分号隔开）eg:项目管理,www.xxxx.com;项目监理,www.yyy.com; ")
    private String link;

    /** 链接（链接名称和链接地址之间用逗号隔开，多条链接用分号隔开） eg:项目管理,www.xxxx.com;项目监理,www.yyy.com; */
    @ApiModelProperty(value = "链接集合")
    private List<Map<String, Object>> linkArray;

    @ApiModelProperty(value = "项目展示图片对象")
    private List<BmsAttachment> bmsAttachments;
    
    private BmsAttachment projectMain;

    /** userGlobalId */
    @ApiModelProperty(value = "用户表userGlobalId")
    private String userGlobalId;

    /** 时间戳 */
    @ApiModelProperty(value = "时间戳")
    private String timeStamp;

    /** 所属行业 */
    @ApiModelProperty(value = "所属行业")
    private String industry;

    /** 所属行业 */
    @ApiModelProperty(value = "所属行业,传参")
    private String[] industrys;

    /** 建设类型（0=新建/1=改扩建） */
    @ApiModelProperty(value = "建设类型(0=新建/1=改扩建)")
    private String constructionType;
    
    private String businessTypeNames;

    private String completeCode;

    @ApiModelProperty(value = "服务类别")
    private String serviceType;

    @ApiModelProperty(value = "前期咨询服务内容")
    private String engineeringConsultingService;

    @ApiModelProperty(value = "招标代理服务内容")
    private String biddingAgencyService;

    @ApiModelProperty(value = "造价咨询服务内容")
    private String costConsultingService;

    @ApiModelProperty(value = "项目管理服务内容")
    private String projectManagementService;

    @ApiModelProperty(value = "工程监理服务内容")
    private String projectSupervisionService;

    @ApiModelProperty(value = "设备监理服务内容")
    private String equipmentSupervisionService;

    @ApiModelProperty(value = "检测服务服务内容")
    private String testingService;

    @ApiModelProperty(value = "环境咨询服务内容")
    private String eiaQualificationService;

    @ApiModelProperty(value = "其它咨询服务内容")
    private String otherConsultingTechnicalService;

    @ApiModelProperty(value = "信息咨询服务内容")
    private String informationConsultingService;

    @ApiModelProperty(value = "专项咨询服务内容")
    private String specialConsultingService;

    @ApiModelProperty(value = "设计咨询服务内容")
    private String designConsultingService;

    @ApiModelProperty(value = "结项情况")
    private String closureSituation;
    
    
    private String showProject;
    
    private String isSecurity;
    
    private String isShare;
    
    private String showProjectName;
    
    private String showProjectMember;
    
    private String lonLat;
    
    private String projectDesc;
    
    private String specEffect;
    
    private String showHonor;
    
    private String showProjectMain;
    
    private String showProjectPictures;
    
    private String atts;
    
    private String mainServiceContent;
    
    private List<String> projectAttIds;
    
    private List<BmsAttachmentVo> projectAtts;
    
    private List<String> pictures;
    
    public String getShowProject() {
		return showProject;
	}

	public void setShowProject(String showProject) {
		this.showProject = showProject;
	}

	public String getIsSecurity() {
		return isSecurity;
	}

	public void setIsSecurity(String isSecurity) {
		this.isSecurity = isSecurity;
	}

	public String getIsShare() {
		return isShare;
	}

	public void setIsShare(String isShare) {
		this.isShare = isShare;
	}

	public String getShowProjectName() {
		return showProjectName;
	}

	public void setShowProjectName(String showProjectName) {
		this.showProjectName = showProjectName;
	}

	public String getShowProjectMember() {
		return showProjectMember;
	}

	public void setShowProjectMember(String showProjectMember) {
		this.showProjectMember = showProjectMember;
	}

	public String getLonLat() {
		return lonLat;
	}

	public void setLonLat(String lonLat) {
		this.lonLat = lonLat;
	}

	public String getProjectDesc() {
		return projectDesc;
	}

	public void setProjectDesc(String projectDesc) {
		this.projectDesc = projectDesc;
	}

	public String getSpecEffect() {
		return specEffect;
	}

	public void setSpecEffect(String specEffect) {
		this.specEffect = specEffect;
	}

	public String getShowHonor() {
		return showHonor;
	}

	public void setShowHonor(String showHonor) {
		this.showHonor = showHonor;
	}

	public String getShowProjectMain() {
		return showProjectMain;
	}

	public void setShowProjectMain(String showProjectMain) {
		this.showProjectMain = showProjectMain;
	}

	public String getShowProjectPictures() {
		return showProjectPictures;
	}

	public void setShowProjectPictures(String showProjectPictures) {
		this.showProjectPictures = showProjectPictures;
	}

	public List<String> getPictures() {
		return pictures;
	}

	public void setPictures(List<String> pictures) {
		this.pictures = pictures;
	}

	public String getLockStatus() {
		return lockStatus;
	}

	public void setLockStatus(String lockStatus) {
		this.lockStatus = lockStatus;
	}

	@Excel(name = "锁定状态")
    private String lockStatus;

    public String getInformationConsultingService() {
        return informationConsultingService;
    }

    public void setInformationConsultingService(String informationConsultingService) {
        this.informationConsultingService = informationConsultingService;
    }

    public String getSpecialConsultingService() {
        return specialConsultingService;
    }

    public void setSpecialConsultingService(String specialConsultingService) {
        this.specialConsultingService = specialConsultingService;
    }

    public String getDesignConsultingService() {
        return designConsultingService;
    }

    public void setDesignConsultingService(String designConsultingService) {
        this.designConsultingService = designConsultingService;
    }

    public String getClosureSituation() {
        return closureSituation;
    }

    public void setClosureSituation(String closureSituation) {
        this.closureSituation = closureSituation;
    }

    public String getServiceType() {
        return serviceType;
    }

    public void setServiceType(String serviceType) {
        this.serviceType = serviceType;
    }

    public String getEngineeringConsultingService() {
        return engineeringConsultingService;
    }

    public void setEngineeringConsultingService(String engineeringConsultingService) {
        this.engineeringConsultingService = engineeringConsultingService;
    }

    public String getBiddingAgencyService() {
        return biddingAgencyService;
    }

    public void setBiddingAgencyService(String biddingAgencyService) {
        this.biddingAgencyService = biddingAgencyService;
    }

    public String getCostConsultingService() {
        return costConsultingService;
    }

    public void setCostConsultingService(String costConsultingService) {
        this.costConsultingService = costConsultingService;
    }

    public String getProjectManagementService() {
        return projectManagementService;
    }

    public void setProjectManagementService(String projectManagementService) {
        this.projectManagementService = projectManagementService;
    }

    public String getProjectSupervisionService() {
        return projectSupervisionService;
    }

    public void setProjectSupervisionService(String projectSupervisionService) {
        this.projectSupervisionService = projectSupervisionService;
    }

    public String getEquipmentSupervisionService() {
        return equipmentSupervisionService;
    }

    public void setEquipmentSupervisionService(String equipmentSupervisionService) {
        this.equipmentSupervisionService = equipmentSupervisionService;
    }

    public String getTestingService() {
        return testingService;
    }

    public void setTestingService(String testingService) {
        this.testingService = testingService;
    }

    public String getEiaQualificationService() {
        return eiaQualificationService;
    }

    public void setEiaQualificationService(String eiaQualificationService) {
        this.eiaQualificationService = eiaQualificationService;
    }

    public String getOtherConsultingTechnicalService() {
        return otherConsultingTechnicalService;
    }

    public void setOtherConsultingTechnicalService(String otherConsultingTechnicalService) {
        this.otherConsultingTechnicalService = otherConsultingTechnicalService;
    }

    public String[] getIndustrys() {
        return industrys;
    }

    public void setIndustrys(String[] industrys) {
        this.industrys = industrys;
    }

    public String getCompleteCode() {
        return completeCode;
    }

    public void setCompleteCode(String completeCode) {
        this.completeCode = completeCode;
    }

    public String getIndustry() {
        return industry;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public String getConstructionType() {
        return constructionType;
    }

    public void setConstructionType(String constructionType) {
        this.constructionType = constructionType;
    }

    public String getUserGlobalId() {
        return userGlobalId;
    }

    public void setUserGlobalId(String userGlobalId) {
        this.userGlobalId = userGlobalId;
    }

    public String getTimeStamp() {
        return timeStamp;
    }

    public void setTimeStamp(String timeStamp) {
        this.timeStamp = timeStamp;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String[] getAreas() {
        return areas;
    }

    public void setAreas(String[] areas) {
        this.areas = areas;
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getComposition() {
        return composition;
    }

    public void setComposition(String composition) {
        this.composition = composition;
    }

    public Long getServicePeriod() {
        return servicePeriod;
    }

    public void setServicePeriod(Long servicePeriod) {
        this.servicePeriod = servicePeriod;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getExtend1() {
        return extend1;
    }

    public void setExtend1(String extend1) {
        this.extend1 = extend1;
    }

    public String getExtend2() {
        return extend2;
    }

    public void setExtend2(String extend2) {
        this.extend2 = extend2;
    }

    public String getExtend3() {
        return extend3;
    }

    public void setExtend3(String extend3) {
        this.extend3 = extend3;
    }

    public String getExtend4() {
        return extend4;
    }

    public void setExtend4(String extend4) {
        this.extend4 = extend4;
    }

    public String getExtend5() {
        return extend5;
    }

    public void setExtend5(String extend5) {
        this.extend5 = extend5;
    }

    public String getProjectCompany() {
        return projectCompany;
    }

    public void setProjectCompany(String projectCompany) {
        this.projectCompany = projectCompany;
    }

    public String getProjectLeaderNo() {
        return projectLeaderNo;
    }

    public void setProjectLeaderNo(String projectLeaderNo) {
        this.projectLeaderNo = projectLeaderNo;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Double getInvestment() {
        return investment;
    }

    public void setInvestment(Double investment) {
        this.investment = investment;
    }

    public Long getConstructionCost() {
        return constructionCost;
    }

    public void setConstructionCost(Long constructionCost) {
        this.constructionCost = constructionCost;
    }

    public String getHonors() {
        return honors;
    }

    public void setHonors(String honors) {
        this.honors = honors;
    }

    public String getBusinessCategory() {
        return businessCategory;
    }

    public void setBusinessCategory(String businessCategory) {
        this.businessCategory = businessCategory;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public List<Map<String, Object>> getLinkArray() {
        return linkArray;
    }

    public void setLinkArray(List<Map<String, Object>> linkArray) {
        this.linkArray = linkArray;
    }

    public List<BmsAttachment> getBmsAttachments() {
        return bmsAttachments;
    }

    public void setBmsAttachments(List<BmsAttachment> bmsAttachments) {
        this.bmsAttachments = bmsAttachments;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("globalId", getGlobalId())
            .append("code", getCode())
            .append("name", getName())
            .append("status", getStatus())
            .append("startDate", getStartDate())
            .append("executeDept", getExecuteDept())
            .append("party", getParty())
            .append("projectLeader", getProjectLeader())
            .append("projectManager", getProjectManager())
            .append("buildUnit", getBuildUnit())
            .append("area", getArea())
            .append("address", getAddress())
            .append("composition", getComposition())
            .append("servicePeriod", getServicePeriod())
            .append("content", getContent())
            .append("remark", getRemark())
            .append("extend1", getExtend1())
            .append("extend2", getExtend2())
            .append("extend3", getExtend3())
            .append("extend4", getExtend4())
            .append("extend5", getExtend5())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("isvalid", getIsvalid())
            .append("projectCompany", getProjectCompany())
            .append("projectLeaderNo", getProjectLeaderNo())
            .append("enableFlag", getEnableFlag())
            .append("endDate", getEndDate())
            .append("investment", getInvestment())
            .append("constructionCost", getConstructionCost())
            .append("honors", getHonors())
            .append("userGuid", getUserGuid())
            .append("freezeStatus", getFreezeStatus())
            .append("businessTypeNames",getBusinessTypeNames())
            .append("useBusinessCategory",getUseBusinessCategory())
            .append("projectMain",getProjectMain())
            .append("atts",getAtts())
            .toString();
    }

	public String getUserGuid() {
		return userGuid;
	}

	public void setUserGuid(String userGuid) {
		this.userGuid = userGuid;
	}

	public String getFreezeStatus() {
		return freezeStatus;
	}

	public void setFreezeStatus(String freezeStatus) {
		this.freezeStatus = freezeStatus;
	}

	public String getBusinessTypeNames() {
		return businessTypeNames;
	}

	public void setBusinessTypeNames(String businessTypeNames) {
		this.businessTypeNames = businessTypeNames;
	}

	public BmsAttachment getProjectMain() {
		return projectMain;
	}

	public void setProjectMain(BmsAttachment projectMain) {
		this.projectMain = projectMain;
	}

	public String getAtts() {
		return atts;
	}

	public void setAtts(String atts) {
		this.atts = atts;
	}

	public List<BmsAttachmentVo> getProjectAtts() {
		return projectAtts;
	}

	public void setProjectAtts(List<BmsAttachmentVo> projectAtts) {
		this.projectAtts = projectAtts;
	}

	public List<String> getProjectAttIds() {
		return projectAttIds;
	}

	public void setProjectAttIds(List<String> projectAttIds) {
		this.projectAttIds = projectAttIds;
	}

	public String getIsMember() {
		return isMember;
	}

	public void setIsMember(String isMember) {
		this.isMember = isMember;
	}

	public String getMainServiceContent() {
		return mainServiceContent;
	}

	public void setMainServiceContent(String mainServiceContent) {
		this.mainServiceContent = mainServiceContent;
	}
}
